Computer operating pointer devices and computer operating processes

ABSTRACT

A method for operating a computer by means of a pointer comprises providing counters for memorizing coordinate displacements of the pointer index; choosing one of two modes, the REGISTER OR MEMORY (R/M) mode or the ACTIVE OR PLAY (A/P) mode; when in the R/M mode, moving the pointer index from a selected base point to a reference position corresponding to a computer operation, and memorizing the resulting pointer index displacements; and when the pointer in the A/P mode, bringing the pointer index to the base point, applying to it the memorized displacements, thus moving it from the base point to the reference position, and carrying out the operation corresponding to this latter. A computer apparatus comprises, in addition to the conventional elements of a pointer operated computer, counters for registering differential displacements and means for retrieving from the counters the registered differential displacements and applying them to a base position of the pointer. The nonconventional elements of the apparatus are preferably included in the pointer or part of an Asynchronous Interface.

FIELD OF THE INVENTION

This invention relates to improvements in pointer devices for operatingcomputers, in computer operation processes and in apparatus comprisingcomputers and pointer devices. It also relates to apparatus comprisingcomputers and, in general, serial devices, and to interfaces betweencomputers and serial devices.

BACKGROUND OF THE INVENTION

A large percentage of personal computers presently produced are operatedby means of pointer devices. A pointer device consists of a hardwareelement and a software element. The hardware element is a device whichgenerally is movable or includes a movable component, or which comprisesother means for generating a motion, and the software element comprisesan index or cursor generated and controlled by a program, which indexmoves over the computer display or screen in response to thedisplacements of the movable hardware element device or of a movablecomponent thereof or to other motion generating commands of the hardwareelement--hereinafter "mechanical control displacements" or, briefly,"the control displacements". Said response, however, exists only as faras the index displacements are contained within a certain field, whichcan be called "the pointer active field", the dimensions of which aregenerally determined by those of the computer display or screen or ofthe part thereof within which the index is visible. Thus, when thecontrol displacements in a certain direction have brought the index tothe border line of the computer display, any further displacement of themovable device or component of the hardware element in the samedirection causes no further response of the index. Hereinafter, whenmention is made of index (or cursor) displacements or of controldisplacements, it should be understood that they are displacementswithin the pointer active field, unless otherwise specified. Further, itshould be kept in mind that only the index displacements are directlyrelevant to the computer functions, and, for instance, determine whatoperation should be carried out or where it should be carried out.Therefore, whenever mention is made of pointer displacements, it shouldbe understood that displacements of the pointer index (or cursor) aremeant, unless otherwise specified.

Many kinds of pointer devices are known in the art and the presentinvention applies to all, although it will be particularly describedwith reference to a most common pointer device, viz. to a mouse. A mouseis a device which can be displaced by sliding it over a plane surface.Each displacement causes a rolling of a sphere, mounted in the mouse,over said plane surface, and therefore a rotation of the sphere withrespect to the body of the mouse, which rotation, through a mechanismprovided in the mouse, measures the mouse displacements along twodifferent coordinates, viz. X- and Y-displacements. Digital signalsrepresenting displacements are sent to the computer by means of aconductor connected to an input port of this latter. An index (orcursor), which represents the mouse, is visualized by the computersoftware on the computer display. It appears, when the computer isswitched on, in an initial or origin position, which may be called "themouse origin point", and subsequently moves from it, synchronously withthe motions of the mouse. The positions of the mouse index are definedby Cartesian coordinates--hereinafter "X and Y mouse index coordinates",or, briefly, "X and Y mouse coordinates", and its displacements bychanges in the value of those coordinates. The minimum such changes towhich the computer is sensitive and which will cause an actual motion ofthe mouse index, as small as it may be, will be called "elementary X andY coordinate displacements". A pair (X,Y) of elementary coordinatedisplacements, occurring concurrently, define an elementary vectordisplacement. The computer applies each elementary X and Y displacementto initial or origin coordinates X₀ and Y₀ of the mouse index tocalculate the present or actual mouse index coordinates. When a commandis given--normally be means of what can be called a "mouse event", e.g.the actuation of a mouse key--to perform an operation connected to themouse, the operation which corresponds to the actual mouse indexcoordinates is performed by the computer. Hereinafter it will be assumedthat X₀ =Y₀ =0. If different values were attributed to the initialcoordinates, they could be easily taken into account.

Some computers are controlled by means of a mouse that is stationary,and may be or not be mounted on and integral with the computer, and isprovided with a sphere--which in such cases is called"trackball"--directly actuated by the operator's hand. Rotation of thesphere causes displacement of the mouse index, in the same manner setforth hereinbefore. While in the case of the movable mouse the controldisplacements, measured by the rotation of the sphere with respect tothe body of the mouse, are caused by the sliding of the mouse itselfover a plane surface, in the case of a stationary mouse the rotation ofthe trackball is caused directly by the operator's hand. For the purposeof this description, it is convenient to consider what may be called"virtual" mouse displacements, viz. the displacements of a movable mousethat would cause its sphere to rotate by the same angles by which thetrackball actually rotates, and consider them as the controldisplacements.

Other pointer devices have hardware elements that do not comprisespheres, but are based on the linear motion of a movable component overa surface that is sensitive to such a motion. The linear displacementsof said movable component are the control displacements, and they causecorresponding displacements of a pointer index, which constitutes asoftware element analogous to that of a mouse device. Said motionsensitive surface may be separate from the computer or may even be thecomputer display itself. Examples of such pointers are Light Pens, TouchScreens, Touch Pads, Sense Pens, Digitizers. Each of them comprises amovable component that is displaced over a stationary surface, which inthe case of the first two is a special computer display, while in thecase of the others is a separate, dedicated surface. In some cases, theoperator's finger might act as the movable component. All of them, aswell as the mouse devices, generate, with the displacements of themovable component, digital information that is transmitted to thecomputer: therefore this invention is equally applicable to all.

In the following description, reference will be made to movable mousedevices, but only for purposes of example, as what is essential to theinvention is the existence of pointer index displacements correspondingto pointer control displacements, and the mechanical nature of saidcontrol displacements and their mechanical causes are irrelevant.Further, the correspondence of said index displacements and said controldisplacements is essentially the same in all pointer devices, so thatthe description of the invention with reference to movable mouse devicescan be applied immediately, by any skilled person, to other types ofpointers. The term "mouse", therefore, as used in this description andclaims, should always be understood as comprising any type of pointers,unless specific reference is made to a structure exclusive to mousedevices, and even then, such reference is to be considered as made onlyfor illustrative and not for limitative purposes.

In normal mouse or generally pointer operation, as is well known toskilled persons, the pointer is connected to the computer through anelectronic circuit interface, that can be a special one, viz. deliveredtogether with the pointer, or may be a standard interface used in thecomputer for general purposes, for instance, a serial interface. In thecase of a PC, such electronic circuit may be an Asynchronous Interface(AI/F), e.g. that known as RS-232 Standard. When any action is carriedout by means of the pointer, viz. a pointer (mouse) event occurs, e.g.,a mouse key is actuated or a mouse is displaced, the interfacecommunicates this fact to the computer CPU by means of a signal, whichis known as the Interrupt Request Signal (hereinafter IRQ) and isaccompanied by data transmitted by the mouse itself to the interfacecontroller input register. The CPU, when it receives the IRQ, interruptsthe process that it was carrying out and starts a software routine,which is called the Interrupt Service Routine (hereinafter ISR) andwhich is soft-wired to the Interrupt Vector (IV), a region in the RandomAccess Memory (RAM) which contains the addresses of the service routinesthat are resident in memory. The main role of the ISR is to read thedata from the interface to the pointer, to interpret it and to store itin a public domain of the RAM for future use. A different ISR, andassociated routines, is required for each type of pointer and isinstalled in the computer memory by loading a software driver, generallyprovided by the mouse manufacturer and embodied in a diskette. Someprograms or operating systems, such as Windows, include drivers for anumber of mouse devices, and if a mouse is to be used that is not one ofthem, the corresponding driver must be installed during set-up.

For the purpose of permitting communication with the pointer, a ServiceLibrary (hereinafter SL) is also loaded by the mouse driver and issoft-wired to a public software interrupt number of the IV. The SLcomprises a number of utility functions. One of them is the connectionof the User Mask Routine (UMR) address to the ISR. When a pointer event,such as a unit displacement of its mobile part or the actuation of apointer button occurs, the ISR reads the data from the interface andasks whether a UMR is present. If the answer is positive and the eventcan be "masked on", viz. accepted, the control of the computer is passedto the user program, by means of the UMR, which now communicates freelywith the pointer through the functions of the SL. When the event hasbeen completed, the control is returned to the process which wasinterrupted by the IRQ. The above well known features of pointeroperation should be kept in mind for a complete understanding of theembodiments of the invention to be described. Said features apply tostationary mouse devices as well, and essentially to all pointerdevices, with variations that are well known and understood by skilledpersons.

The operation of a computer by means of a pointer, and particularly of amouse, often requires several displacements of the pointer index orcursor, in order to position it at certain zones of a Tool Bar and/or ofan opened window and there to actuate it to cause it to transmit to thecomputer the desired commands. When an operation is to be carried outseveral times in a computer session, the repetition of the same pointerdisplacements and commands is troublesome and time consuming. Macrorecorder routines, that are available in various forms in computersoftware, are not fully satisfactory, because on the one hand they arecomplex and involve a dialogue between computer and operator, and, onthe other hand, they require the operator to learn many differentactions that are not so frequently used as to be easily rememberedFurthermore, they are not always time saving and are limited as to theoperations that they permit to perform. Finally, they aresoftware-dependent and therefore not universally applicable.

It is an object of this invention to facilitate the operation ofcomputers by permitting to carry out selected operations in a quickerand easier manner.

It is another object of this invention so to facilitate the operation ofa pointer controlled computer, while using a pointer that is completelyor nearly conventional in structure.

It is a further object of the invention to permit to select operationsin a pointer controlled computer without having repeatedly to displacethe pointer or a movable part thereof in order to select the operation

It is a still further object of the invention to permit to achieve theaforesaid objects, while selecting the desired operations and changingsaid selection whenever desired.

It is a still further object of this invention to provide a method foroperating a pointer controlled computer which renders the operation ofthe computer quicker, easier and more versatile, by particularly simpleand economical means.

It is a still further object of this invention to provide a method foroperating a computer controlled by a pointer that is completely ornearly conventional in structure, which method permits to carry outselected operations in a quicker and easier manner.

It is a still further object of this invention to provide a method foroperating a computer and/or an improved pointer structure and/orimproved interfaces between pointer and computer, which permitrepeatedly to carry out by one or two commands a sequence of a pluralityof operations.

It is a still further object of this invention to provide a method foroperating a computer and/or an improved pointer structure and/orimproved interfaces between pointer and computer, which permit to repeatany number of times a selected operation or sequence of operations.

It is a still further object of this invention to achieve the aforesaidobjects with respect to a pointer that is a mouse device.

It is a still further object of this invention to provide a method foroperating a combination of a serial device and a computer.

It is a still further object of this invention to provide an improvedinterface between a serial device and a computer.

It is a still further object of this invention to provide an improvedcombination of a serial device, a computer and an interface betweenthem.

It is a still further object of this invention to facilitate andaccelerate carrying out complex computer operations, e.g. as in graphicwork in CAD/CAM methods, and the like.

It is a still further object of this invention to provide an improvedcomputer method and apparatus which permits to register and exactly toreproduce pointer index paths.

It is a still further object of this invention to provide an improvedcomputer method and apparatus which permits to register and exactly toreproduce geometric shapes and configurations of any complexity.

It is a still further object of this invention to provide an improvedcomputer method and apparatus which is independent of the particularcomputer to which it is applied and to the software by which it isoperated.

It is a still further object of this invention to achieve theaforementioned objects without interfering with the computer software.

Other objects and advantages of the invention will become apparent asthe description proceeds.

SUMMARY OF THE INVENTION

The following nomenclature will be used in this specification andclaims.

"Actual position" of the pointer (particularly mouse) index--sometimesbriefly "actual position of the pointer"--means the position in whichthe pointer index is located at any time, and particularly when aselected operation is to be carried out.

"Counter coordinates" means the coordinates associated with a specificposition of the pointer index.

"Coordinate pointer (mouse) index displacements", or briefly, "pointer(mouse) displacements" means the changes in the X and Y coordinates,associated with the position of the pointer (mouse) index, when it movesfrom one point to another. They are parallel to the two coordinate axesand have the sign + or -, according to their direction. They aretherefore vectors parallel to the X and Y axes.

The size of the "(pointer index) elementary coordinate displacements",which are, as has been said, the smallest displacements that a pointerindex can make along the X and Y axes, and of the correspondingelementary vector displacements, depends on the particular pointer andespecially on the particular system in which the pointer operates. Ingeneral, all coordinate displacements that are not elementary ones arealgebraic sums of elementary coordinate displacements, and all vectordisplacements that are not elementary ones are vectorial sums ofelementary vector displacements. When reference is made hereinafter topointer index displacements it should be understood that, in general,the pointer index undergoes such displacements by successivelyundergoing a number of elementary displacements, so that the expression"pointer (index) displacement" signifies a succession of elementarydisplacements. In all cases, it will be obvious whether reference tocoordinate or to vector displacements is intended.

"Reference position" means a position of the pointer (particularlymouse) index in which the pointer can cause the computer to perform achosen activity, including a position in which the pointer (particularlymouse) causes a menu to be displayed on the computer screen.

In the following description, reference will usually be made to events,actions and operations that are associated with a Windows program. Itmust be emphasized that this is done for purposes of illustration onlyand involves no limitation, as the invention is applicable to computersoperated by means of any program; in other words, the invention isprogram-independent (as well as computer- and system-independent).

Keeping this is mind, it should be understood that a reference positionneed not be a sharply defied one. In many cases, it is any positioncomprised in a small area on the computer screen, to which correspondtwo narrow ranges of mouse coordinates, as when the pointer index isplaced in a zone of the TOOL BAR which corresponds to a given window,such as the FILE or EDIT or other window, or to a given operation on thewindow menu, such as OPEN, CLOSE, FIND, and the like.

"Reference differential displacements" or, briefly, "differentialdisplacements", means the displacements required to bring the pointer(particularly mouse) index from a reference position to anotherposition, which will be called "a base position" or "base point". Thebase position may be the actual pointer (particularly mouse) indexposition or a fixed position or a position which the pointer index haspreviously occupied and the coordinates of which have been memorized, aswill be better explained hereinafter. Therefore each differentialdisplacement is relative to two points: the reference position and thebase point.

"Reference counter coordinates" means the counter coordinates associatedwith a reference position of the pointer (particularly mouse) index.

Obviously, the pointer index would move back from a base point to areference position by displacements that are the opposite of thecorresponding differential displacements. It will be apparent that thepointer index could be brought from the pointer origin position to areference position by bringing it firstly to a base point and then fromit to the reference position, viz. by applying to it firstly the countercoordinates of the base point, viz. the displacements from the origin tosaid base point, and then the opposite of the differential displacementscorresponding to said reference position and said base point. If thecounter coordinates of the base point are indicated by DX and DY, thoseof the reference position are indicated by ΔX and ΔY, and thedifferential coordinate displacements are indicated by δX and δY, it isobvious that ΔX=DX-δX and ΔY=DY-δY: viz. the reference countercoordinates are equal to the base point counter coordinates minus thedifferential coordinate displacements. Thus, e.g., if DX and δX haveopposite directions, ΔX has the direction of DX and length equal to thesum of the lengths of DX and δX; if they have the same direction, ΔX hasthe direction of the larger of the two and its length is the differenceof their lengths.

It is stressed that the expression "pointer (mouse)displacements"--sometimes briefly "pointer (mouse)displacements"--refers to changes in the coordinates of the pointer(mouse) index or cursor (which are visualized by its displacements onthe computer display), and it is irrelevant by what controldisplacements they are caused, viz. it is irrelevant whether suchchanges are caused by moving a conventional mouse over a surface,whereby correspondingly to rotate its sphere, by directly rotating thetrackball of a stationary mouse, or by linearly displacing another kindof pointer. Displacements of a pointer index can also be producedwithout corresponding mechanical displacement of the pointer or of anypart thereof, e.g. by moving a finger over a display or by electricalmeans actuated, for example, by keys or by a joystick or the like. Alldisplacements of a pointer index, no matter how produced, are comprisedin the displacements to which this invention refers.

The absolute positions of the pointer (particularly mouse) device as aphysical entity, when it is movable, or the absolute angular positionsof a movable element thereof such as a trackball, when the pointer isstationary, or the absolute position of a linearly movable pointer overa plane surface, or any other parameters of the condition of thehardware component of the pointer, are not relevant: what are relevantare the pointer index displacements, which are defined by changes in itsX and Y coordinates and are visually evidenced by its displacements onthe computer display.

It should be noted that one pair of coordinates X,Y or coordinatedisplacements, and therefore one pointer vector displacement, is oftennot enough to identify and select a computer operation. The operationsthat require more than one displacement of the pointer may generally beof either of two different kinds, as will be better understood byreferring, for purposes of illustration only, to a mouse controlledcomputer in which a Windows program has been installed. In a first kind,the pointer is brought to a position in which it cannot cause thecomputer to do anything, except to open a menu window, and the pointerkey, by whose means commands are transmitted to thecomputer--hereinafter the SELECT key--is depressed to open the window.The depression (or release) of a key can be called, as has been said, a"pointer (mouse) event". A pointer event may not involve a command tothe computer to carry out any operation: e.g., placing a mouse in anempty position of the screen and depressing a key produces no computeraction. However, pointer events occurring at certain positions on thescreen, or after certain other events, may cause the computer to carryout an operation: e.g., placing the mouse over the SAVE position on aFILE window will produce the Save operation.

If now the SELECT key is released, nothing happens except that thewindow may close. No other action is caused by the mouse, until anoperation is selected from the menu by bringing the mouse to anappropriate position in the menu and only then releasing the SELECT key.Therefore two displacements plus two mouse events produce one operation,which will be called "dual operation", and the two displacements thatare required will be said to define "phases" of the operation.Exceptionally, more than two phases may be required to carry out a"multi-phase" operation.

In other cases, however, the total effect, which the user wishes toproduce, is the consequence of a plurality of operations, each of whichcan be separately effected and has a separate significance, or at least,each of which requires the depression and subsequent release of themouse SELECT key. E.g., changing a portion of print from one font andsize to another font and size requires changing firstly the font andthen the size, or vice versa; and changing the font type or size of awhole text, requires selecting the whole text and then the font type orsize. Such operations will be called "two-stage operations" and eachpart of them will be called a "stage".

There are, finally, operations which comprise a succession of more thantwo stages. An example, in some computers, is the choice of the spacingbetween lines. This may require opening a FORMAT window, choosing in itsmenu the PARAGRAPH item, which opens another window, choosing in thiswindow the LINE SPACING item, which opens a third window, and finallychoosing in this latter the desired spacing. In graphic work, in manycases, a desired result cannot be obtained except through a successionof operations. In all these cases, the succession of operations will becalled herein "program" and each operation will be referred to as a"stage" of the program, it being understood that each stage may be asingle or a dual operation. Hereinafter, the term "operation unit" willbe used to designate collectively a single-phase or ordinary operation,or a phase of a two- or multi-phase operations, or a program stage.

The nomenclature thus adopted has no other purpose than to clarify thepresent description and claims.

According to the invention, a method of operating a pointer controlledcomputer is provided, which comprises the following steps:

A--Choosing one of two pointer modes, the first of which is hereinaftersynonimously called the "REGISTER" or "MEMORY" mode, and the second ishereinafter synonimously called the "ACTIVE" or "PLAY" mode;

B--When the pointer is in the REGISTER or MEMORY mode: a) selecting atleast an operation unit, and preferably one from among a plurality ofoperation units, by bringing the pointer index to a reference positioncorresponding to said operation unit; and b) for each selected operationunit, causing the pointer index displacements relative to said referenceposition and a first, selected base point to be counted and registeredor memorized as "differential (coordinate) displacements" δX and δY.

C--When the pointer is in the ACTIVE or PLAY mode: a) selecting anoperation unit from among those previously selected in the REGISTER orMEMORY mode; b) determining the corresponding reference countercoordinates by applying the differential (coordinate) displacements δXand δY, with the appropriate sign, to the counter coordinates of asecond base point; and c) carrying out the operation unit correspondingto said reference counter coordinates.

If more than one operation units are to be memorized and laterperformed, the aforesaid steps will be repeated for each one of them.

The REGISTER or MEMORY mode will be briefly indicated by "R/M mode" andthe ACTIVE or PLAY mode will be briefly indicated by "A/P mode". Theword "register" is used herein to denote an operation, and not anelement of hardware as is customary in the electronics art.

In most cases, the first and second base points coincide. However, forsome purposes, in certain embodiments of the invention, the second basepoint may be different from the first. Such an embodiment can be chosen,e.g., when the pointer displacements within a certain window must berepeated in the same or another window located at a different positionon the computer screen, or for graphic purposes.

It should be noted that the differential displacements counted andregistered in the R/M mode, and applied to base point countercoordinates in the A/P mode, are algebraic sums of elementary coordinatedisplacements. Since one X and one Y elementary coordinate displacementare concurrently counted and concurrently applied, Step C of the methodof the invention could also be defined as follows:

C'--When the pointer is in the ACTIVE or PLAY mode: a) selecting anoperation unit from among those previously selected in the REGISTER orEMORY mode; b) determining the corresponding reference position byapplying the differential vector displacements to the position of asecond base point; and c) carrying out the operation unit correspondingto said reference position.

In a preferred form, the method of the invention comprises:

1--Providing counters--hereinafter differential coordinate displacementor, brifly, DD-counters--for memorizing pointer index differentialcoordinate displacements and permitting to read and/or retrieve saiddisplacements therefrom;

2--Choosing one of two modes, the R/M mode or the A/P mode;

3--When the pointer is in the R/M mode: a) selecting at least anoperation unit; b) moving the pointer index from a selected base pointto a reference position corresponding to said operation unit; and c)causing the pointer index coordinate elementary displacements occurringduring said movement of the pointer index to be counted and registeredor memorized as differential elementary coordinate displacements;

4--When the pointer is in the A/P mode: a) selecting an operation unitfrom among those previously selected in the R/M mode; b) bring thepointer index to said base point; c) successively applying to saidpointer index said differential coordinate elementary displacementswhereby to move it, through a succession of elementary vectordisplacements, from said base point to said reference position; and c)carrying out the operation unit corresponding to said referenceposition.

There are two variants of the method of the invention, depending on thechoice of the base point and, corresponding to the manner in which thedifferential displacements are measured. In one variant, the base pointis the actual position of the pointer index. In that case, thedifferential displacements are counted by bringing the pointer indexfirstly to a reference position, and starting to count displacement fromthat position. The counting of the displacements continues as long asthe computer is in operation, and the displacements counted from anygiven reference position up to any moment, are the differentialdisplacements relative to said reference position and a base point thatis the point in which the pointer index finds itself at that particularmoment. One can say, therefore, that the "counted displacements", inthis case, are equal to the differential displacements relative to thesame reference and base positions.

In a second variant of the method, the base point is a position whichthe pointer index occupies, or has previously occupied and/or thecoordinates of which have been memorized, or can be a fixed point, e.g.the origin having coordinates X₀, Y₀ : in that case, the displacementsare counted from that point to the reference position. Therefore, the"counted displacements" are of the same magnitude, but of the oppositesign of the differential displacements relative to the same referenceand base points; and, in order to determine the reference countercoordinates, as set forth in step 4b of the method, the differentialdisplacements are applied to the coordinates of said base point, whichhave been memorized, and it is not necessary actually to bring thepointer index back to it, although this is possible.

In an embodiment of the invention, when the base point is a fixed point,particularly the origin, the first registered differential displacementis ignored or neutralized in the A/P mode. A special command or aspecial key or combination of keys can be provided for this purpose.Then the differential displacements following the first are effected bythe pointer, in the A/P mode, starting from the point in which thepointer is located when said mode is chosen. In this way the sameresults are obtained as when changing the base point from the R/M to theA/P mode, but the same, fixed base point is always used, which isconvenient.

Further, it has been said that to apply the differential (coordinate)displacements δX and δY, with the appropriate sign, to the countercoordinates of the base point means to subtract said displacements fromsaid counter coordinates. In the aforesaid second variant of the methodof the invention, in which the counted displacements are the opposite ofthe differential displacements, to apply the differential displacementsδX and δY, with the appropriate sign, to the counter coordinates of thebase point means to add the counted displacements to said coordinates.

When said second variant of the method is carried out in connection witha multi-phase operation or with a program, which are composed of aplurality of operation units, the differential displacements are countedby: a) bringing the pointer index to the selected base point, b)displacing the pointer index and counting displacements starting fromsaid base point until the first reference position has been reached, c)registering said first counted displacements, d) displacing the pointerindex and continuing to count displacements from said first referenceposition until the second reference position has been reached; e)registering said second counted displacements; and so on, displacing thepointer index from one reference position to the next and counting therespective displacements, until the last reference point has beenreached. It can be said that, in this case, the operation units and thecorresponding reference points are arranged in a succession, and eachreference point is the base point relative to the next referenceposition. However, this variant can be modified by registering not eachsecond, third etc. counted displacements, but the sums of each X counteddisplacement and all the preceding X counted displacements and the sumsof each Y counted displacement and all the preceding Y counteddisplacements: in this case, all the registered displacements have thesame base point.

In multi-phase operations, generally, no commands are given by thepointer between phases, since no phase is independently performed, viz.,the pointer events only cause the counting and registration of thedisplacements. In programs, on the other hand, commands may be given bythe pointer between stages, as some or even all of the stages can causethe computer to perform some operation, viz., the pointer events includeoperative commands in addition to the counting and registration of thedisplacements. Therefore, the above definition of the method accordingto the invention must be read with the understanding that the operationunits are the program stages and that step B) of the method includes asub-step Bc): causing the pointer command or pointer event relative tothe operation unit to be registered.

In general, the method according to the invention includes registeringany pointer event at any time when in the R/M mode, and reproducing itand/or producing any action associated with it, when in the A/P mode. Itshould be noted that a pointer event may have different meanings and/orconsequences, depending on the moment or phase of a program in which itis registered and/or reproduced.

Preferably, the differential pointer index (coordinate) displacementsare memorized as a succession of digital values each representing anelementary coordinate displacement and said differential displacementsare applied to the counter coordinates of the base point by moving thepointer index successively to effect said elementary displacements.Since the X and Y elementary displacements are concurrent, the result ofthis procedure is that the index moves from the base point to areference position (or vice versa) through a succession of elementaryvector displacements, viz. by the same route that it followed in goingfrom the reference position to the base point (or vice versa). The"motion" of the index is generally visible on the computer screen, butif the computer software should cause it not to be visible. This wouldbe irrelevant. If the invention is used to register and reproduce thetrajectory of the pointer index, the starting point of its motion may beconsidered as a base point and its end point (even if it coincides withthe starting point, in a closed trajectory) may be considered as areference position. The expression "reference position" must beconstrued, therefore, to include positions that do not actuallycorrespond to operation units. In graphic programs or routines thepointer index trajectory is visualized on the screen.

The steps of the method, according to the invention, are preferablycarried out as follows.

1. DD-counters are provided either in the pointer itself or in aninterface or in the computer, and in the last case, this is preferablydone by allocating, as such counters, memory banks of the computer RAM(although such counters could be provided independently), and thedifferential (coordinate) displacements δX and δY are registered in thesaid DD-counters.

2. The R/M or the A/P mode is preferably chosen by actuating a MODE key,which can be provided in the pointer or be a key of the computerkeyboard.

3. Operation units are selected and the pointer index coordinatedisplacements relative to their reference positions are registered inthe DD-counters by actuating operative keys, preferably of the pointeror of the computer keyboard, which produce signals that embody theinstructions so to register said δX and δY in the appropriateDD-counters, without interfering with the normal processing of pointersignals, in particular with the updating of the actual pointer indexcoordinates. Each key can be associated with one operation unit, or withone multi-phase operation or with one multi-stage program. In the lattercase, since the phases or the stages are arranged in a succession,successive actuation of the same key will cause said phases or stages tobe selected and the pointer index displacements relative to theirreference positions to be registered in the DD-counters, in theirappropriate succession. When a program is to be registered, and asub-step 3c) is included in the method, the aforesaid keys will producesignals that embody the instructions to register the pointer commands orevents in the appropriate succession with the displacements.

4. Operation units are selected, the δX and δY registered in theDD-counters are read or retrieved and applied to the coordinates ofactual pointer index position or of a fixed point, to determinereference counter (coordinate) displacements, and the operationcorresponding to these latter is performed--all of these by actuatingoperative keys, preferably of the pointer or of the computer keyboard,which produce a signal that embodies the instruction to carry out theaforesaid operation units. Each key can be associated with one operationunit, or with one multi-phase operation or with one multi-stage program.In the latter case, since the phases or the stages are arranged in asuccession, successive actuation of the same key or combination of keyswill cause said phases or stages to be carried out in their appropriatesuccessions.

The mode can also be chosen by providing an icon on the computer screen,e.g. in the Tool Bar, and bringing the pointer index to said icon and tpointer to change from one mode to the other. However this last way ofmode choosing is less desirable as it requires an additionaldisplacement of the pointer index and involves an interference with thecomputer software.

A command can be given by a pointer or by the computer keyboard, or ingeneral by any device comprising keys, by producing pointer events,either by actuating a key specifically associated with that command orby actuating, concurrently or in succession, two or even more keysspecifically associated with different commands. Therefore the term"key", as used herein, generally includes a combination of keys,whenever this is possible; or, more precisely, the term "key" willinclude any combination of structural means by which a command can begiven that is normally given by actuating a key.

The number of operations that can be selected in order to apply to themthe method of the invention depends on the number of distinct pointerevents that can be produced, e.g. on the number of keys available.However, the selected operations can be changed at will, as will betterappear hereinafter. When the context of the computer display is changed,e.g., its size or its position on the screen is changed, the operationsof the R/M stage should be repeated, although in principle this could berendered unnecessary by suitable modifications of the computer program.

When the method of the invention is applied to carry out a number ofprograms, as is desirable for important applications, such as in graphicor CAD/CAM applications, it comprises the selection of the program,which precedes all stages of the R/M or the A/P mode and involves theselection of a number of DD-counters and other pointer commands memorybanks, assigned to the program, and their arrangements in theappropriate succession. The program selection is then preferablyeffected by actuating a PROGRAM key. Correspondingly, however, only asingle operative key is required. An alternative way of selecting aPROGRAM is to provide a window--whenever the computer program makes thispossible--and to select the PROGRAM among those listed in the window,preferably, when the pointer is a mouse, by using the mouse index and amouse key, e.g. the SELECT key, in the usual mouse actuation manner.

In a typical way of carrying the invention into practice, a conventionalmouse can be provided which comprises three keys, hereinafter indicatedas L-, M-, and R-key. The L-key is the ordinary SELECT key, present inall mouse devices. The R-key is generally assigned specific functions,such as to open a particular window. The M-key is generally available,and if so, two combinations starting with it--herein considered asadditional "keys"--are also available: M-L and M-R. In order to carryout the invention, a MODE key is needed. Therefore two other keys areavailable with such a mouse. If programs are to carried out, said twoother keys can be a PROGRAM key and a single operative key. If separateoperations are to be carried out, two such operations may be selected atany time. To increase the number of operations, keys of the computerkeyboard can be used. Alternatively, additional physically distinct keysmay be provided in the mouse, as will be exemplified later.

In an additional variant of the method of the invention, the mouse canbe used for carrying out separate operations as well as a program. Themouse keys will then select two operations and cause them to beperformed, as hereinbefore set forth. However, additionally, when themouse is in the R/M mode and a computer keyboard key--which includes acombination of two or even more keys--is actuated, all subsequentdifferential displacements and operative commands of the mouse will beregistered in appropriate counters or memory banks as constituting, intheir succession, a program. Said key will be used to signal thecompletion of the program R/M stage, either by releasing it, or, if ithas been released, by actuating it once again. Said program will becarried out when the mouse is in the A/P mode and the same key isactuated

This invention also provides a pointer (particularly a mouse) controlledcomputer apparatus, which comprises:

I--a pointer, comprising means for producing and transmitting to acomputer at least signals corresponding to pointer index displacementsand other desired information and instructions;

II--a computer having means for receiving and means for processingsignals from said pointer, said processing means comprising means forcausing pointer index displacements and other operations directed bysaid signals to be carried out;

III--means for identifying, among said signals, those corresponding todifferential (coordinate) displacements;

IV--counter means for registering differential (coordinate)displacements;

V--means for reading and/or retrieving said differential (coordinate)displacements and determining from them the reference countercoordinates; and

VI--means for performing the operations corresponding to said referencecounter coordinates.

In a preferred embodiment of the invention, the aforesaid means III, IVand V are included in an unconventional Asynchronous Interface (AI/F),which preferably, though not necessarily, includes all the circuitryneeded to perform the functions of a conventional AI/F, and if not, isin series with a conventional AI/F. Thus the apparatus comprises amouse, a computer, and electronic circuit means, particularlyAsynchronous Interface (AI/F) means conveniently embodied in a card orin two cards, which identify the signals corresponding to mousedifferential (coordinate) displacements, as well as other relevant mouseevents and operative commands, register the same, and read and/orretrieve the same. Said AI/F may also embody all the circuital featuresrequired to carry out the functions of the conventional AI/F, e.g. ofthe RS-232, and in this case it is inserted into the computer in itsplace, or it may embody only the additional features required forcarrying out the invention, and in that case it is conveniently insertedinto the computer in series to the presently used AI/F. Theunconventional Asynchronous Interfaces or combinations of AI/F, usedaccording to the invention, are also in themselves a part of theinvention.

BRIEF DESCRIPTION OF THE DRAWINGS

In the drawings:

FIG. 1 illustrates, in block diagram, an apparatus according to a firstembodiment of this invention;

FIG. 2 illustrates in process flow diagram form what happens in the R/Mmode according to an embodiment of the invention;

FIG. 3 illustrates in process flow diagram form what happens in the A/Pmode according to the same embodiment of the invention;

FIG. 4 illustrates in process flow diagram the R/M stage relative to aprogram, according to an embodiment of the invention;

FIG. 5 illustrates in process flow diagram the A/P stage of the sameprogram;

FIG. 6 illustrates in block diagram the circuit of a mouse adaptedparticularly for carrying out programs;

FIG. 7 illustrates an interface between mouse and computer;

FIG. 8 illustrates in block diagram the operation of a component(Microcontroller Unit) of the interface of FIG. 7;

FIG. 9 illustrates in block diagram the operations of the A/P stage ascarried out by said interface;

FIG. 10 illustrates in block diagram the operations performed in anotherembodiment of the invention;

FIG. 11 illustrates another interface between mouse and computer;

FIG. 12 illustrates in block diagram the operations carried out by acomponent of the interface of FIG. 11; and

FIGS. 13 and 14 show in plan view two alternative mechanical embodimentsof mouse.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

The following embodiments are described as embodying a mouse. However,as has been said, this is done by way of illustration only andessentially the same embodiments can be carried into practice by meansof other types of pointers, with obvious adaptations. The term "mouse",as used hereinafter, should therefore be understood as indicating anypointer.

FIG. 1 illustrates, in block diagram, an apparatus according to a firstembodiment of this invention. Said apparatus comprises the conventionalmouse components, of which only the following are symbolicallyillustrated: the SELECT key 25, displacement pulse generators,comprising wheels 10-10', light sources 12-12' and photodiodes 14-14';and conductor 16 through which the signals from the mouse aretransmitted to the computer. The apparatus additionally comprise counterindexes 28-28'; a MODE key 20; two operative keys 23-23'; andDD-counters 29-29'. While the displacement pulse generators 10-10',12-12', 14-14' must be housed in the mouse, all the other illustratedelements can be housed in separate components, in an interface and evenin the computer itself. Some of these components--particularly thecounter indexes and the DD-counters--may be, and generally are,comprised in a System Control Unit (SCU) 27, in which suitable programsare stored, and are illustrated as separate merely for the sake ofclarity. In fact, all the electronic components can be integrated into asingle microcircuit or small chip. On the other hand, the SCU mayconsist of a plurality of chips, one or more of which (particularlythose that are present in conventional mouse devices) may be located inthe mouse and one or more of them may be located in an interface (as theMicrocontroller Unit (MCU) hereinafter described) or in the computeritself MODE key 20, the operative keys, the conventional displacementpulse generators, the DD-counters, and the SELECT key send input to SCU27. Counter indexes 28-28' successively activate the X and Y DD-counters29-29' to count the differential displacements, as directed by the SCU.

Only two operative keys and two pairs of DD-counters (δX1, δY1 andδX2,δY2) are shown in FIG. 1 and therefore the schematically illustratedapparatus would be adapted to carry out two operations only, but of moreare to be performed, a correspondingly number of keys and DD-counterswould be provided.

FIG. 2 illustrates in process flow diagram form what happens in the R/Mmode according to the first embodiment of this invention.

The R/M mode is firstly chosen, generally by depressing a key,preferably, but not necessarily, in the mouse itself. The system worksthen in the OVERWRITE manner, viz. the signals that are registered inthe DD-counters cancel any others that might have previously beenregistered and the result is as if the counters had been zeroed.

Thereafter, the mouse is brought to a first reference position(indicated as 1st R.P.) corresponding to a selected operation unit. Whenthe mouse is in the 1st R.P., a command is given, preferably byactuating a first operative key (1st Op. Key) to start registering inthe corresponding DD-counters, as differential displacements, thedisplacements that will occur thereafter. The same displacements,however, will continue to be dealt with as actual mouse displacementsand will cause corresponding variations of the counter coordinates. Theregistration of the said differential displacements will continue, inthis embodiment of the invention, unless and until the same 1st Op. Keyis actuated to start registration from another reference position.

The same actions will be repeated for a second selected operation unit.If each unit is a complete operation, this will require the actuation ofa 2nd Op. Key. If the two operation units are phases of a multi-phaseoperations or stages of a program, the 2nd Op. Key may the same as the1st Op. Key. If more operation units are to be selected, the sameactions will be repeated for each of them, using further DD-counters, tocomplete the R/M stage. For simplicity s sake, only two operation unitsare indicated in the process flow diagram.

When the A/P mode is chosen, the process steps illustrated in theprocess flow diagram of FIG. 3 will be carried out.

When the first operation unit is to be performed, an actuating commandis given, preferably by actuating the 1st Op. Key. This causes countersδX1 and δY1 to transmit the respective differential displacements to theSCU. The SCU transmits them, with the opposite sign, to the computer asif they were displacements originated by the hardware of the mouse, andtherefore the computer "believes" that the said hardware has generated amotion of the index, normally seen on the computer screen, from theactual position it occupied when the 1st Op. Key was actuated, to the1st reference position. The SCU also transmits the normal command tocarry out the operation unit corresponding to the mouse coordinates andthis causes the computer to carry out the operation unit correspondingto the phantom mouse coordinates--all according to the normal,unmodified computer program, no matter which program it is. If a secondoperation unit is to be performed, the said actions are repeated, butusing a 2nd Op. Key. The same actions are then repeated for any furtheroperation, using the respective keys. If the said operation units arephases of a multi-phase operations or stages of the program, a singlekey can be used, and when it is depressed, it may cause an operation tobe carried out, and when it is released, it may cause the counterindexes to shift to the next DD-counters, as required.

The process flow diagram of FIG. 4 illustrates the R/M stage relative toa program. Since it is possible to carry out a number of programs, theymust be identified in the R/M mode, e.g. by an ordinal number or by aletter, to establish a succession, so that it may possible to decide, inthe A/P mode, which program to play out.

Once again, the R/M mode is chosen. This causes the coordinates of theactual position in which the mouse is at the time (which becomes thebase point--or the first base point, as hereinbefore explained--for allthe programs registered until the mode is shifted to A/P and then backto R/M) to be registered in the memory of the system. A signalindicating that the following program will be considered the first one,e.g. the number 1 or the letter A, is also registered, preferably byactuating a program key or by other means to be described hereinafter.Actually, there would be no need for such a signal in the R/M, as theprograms might be arranged automatically in the succession in which theyare registered/memorized. However, program selection means must beprovided anyway for use in the A/P stage. Thereafter, the mousedisplacements are counted and registered in DD-counters relative to theX and Y coordinates. Since the displacements are relative to the passageof the mouse from one reference position to another arrangedsequentially, one could use a single X and a single Y counter,appropriately signaling the passage from one to the next displacement.For the sake of clarity, the block diagram will indicate separatecounters for the successive displacements, relative to the first threeoperation units only, in order to contain the size of the diagram. Thesystem being of course in the OVERWRITE manner, the mouse is brought tothe first reference point, the first operative key is actuated andcounters δX1 and δY1 are activated. For the sake of example, it isassumed now that the first operation stage of the program corresponds toan operation that must actually be carried out. In this case, anoperative signal is registered in sequence with the δX1 and δY1, at anappropriate memory address. Thereafter, the mouse is brought to thesecond reference position. The same operative key--since in thisembodiment of the invention, only one operative key is required--isself-actuated, and counters δX2 and δY2 are activated. It is assumed,for the purpose of illustration, that the second stage of the programdoes not require any operation to be carried out. Therefore, the mouseis merely brought to a third reference position and the operative key isactuated once more, thus activating counters δX3 and δY3, and so on, foras many program stages and as many intermediate operations as may berequired.

FIG. 5 illustrates in process flow diagram form the A/P stage of thesame program. The A/P mode and the program are chosen--it is notcritical which one is chosen first. This causes the base pointcoordinates to be retrieved and transmitted to the computer. Theoperative key is actuated, and this causes the δX1 and δY1 counters totransmit the differential displacements to the computer, which transmitsthem as actual mouse displacements. The algebraic sums of the base pointcoordinates and of differential displacements, with the appropriatesign, are the reference counter coordinates to which the computerrelates. At the end of the registration of δX1 and δY1, as has beensaid, an operative signal or command has been registered, and this isbeen transmitted through the SCU, so that the computer performs theoperation unit corresponding to the reference counter coordinates. Thenthe δX2 and δY2 counters are activated, but without the need ofactuating the operative key once again, since the succession of theoperation unit is established by the choice of the program, and, onceagain, the counters transmit the differential displacements. However, nooperative command has been given and therefore the computer carries outno operation except the displacement of the mouse. Now, automatically,counters δX3 and δY3 transmit their differential displacements, and thesuccession operation continues, including the performance of specificoperation stages, whenever they are selected to be performed.

It is obvious that the process flow diagrams of FIGS. 4 and 5 alsodescribe a way of performing multi-phase operations, except that in thatcase there will never be any operative commands between phases; and thatsingle-phase operations can also be carried out, treating each one as asingle-stage program. Further it is possible to perform in the same waya plurality of operations that are normally effected in succession. Thesimplest case is that of two connected operations. E.g., COPY is alwaysand CUT is often followed by PASTE. In some handing of a printed text,one may wish to stress parts of it, e.g. by printing them in bold anditalics or in bold and a certain font. In graphic work, there are manycases of plurality (e.g. two) operations, each one producing its ownresult that may be carried out in succession a number of times. In suchcases, said operations will be performed in succession as if theyconstituted a multi-stage program; and one operative key may cause saidstages to be registered and/or performed automatically in theappropriate succession.

In some cases, after one stage of the program has been performed, thefollowing stage should not be performed until the position in which itis to be performed has been chosen on the display by bringing the mouseindex to it. In that case, in the R/M mode the Op. Key may be depressedtwice in quick succession after bringing the mouse index to a referenceposition and before shifting it to the next position. The secondactuation of the key will have been registered in the memory as aDISCONTINUE command, viz. a command to suspend the operation of theprogram and start it again when the Op. Key is once again actuated, andthe operator will actuate it after the mouse index has been brought tothe appropriate position in the display. Any successive stages of theprogram will be performed automatically.

The choice of the program can be carried out in various ways. One suchway is to use a key on the mouse which has ten different positions, orcan be depressed successively from one to ten times, thereby to send theappropriate signals to the SCU. The number identifying the chosenprogram may be seen through a display, e.g. a window through which aliquid crystal display is visible. It is convenient to place such awindow in a position that is easily visible on the mouse when theprogram is being selected. Other ways of choosing and displaying anoperation identifying signal can be used, though they are notillustrated: e.g., a disk could be provided, carrying on its peripherythe operation numbers, which is rotated to bring the desired numberopposite an index on the mouse body, or an icon could be provided on thecomputer screen showing said numbers (though this would requireinterfering with the computer software). These and other variants willbe clear to skilled persons, who will have no difficulty in carryinginto practice any one of them.

Another way to select a program is to open a widow in the computer'sdisplay, which window shows the program numbers, the desired numberbeing chosen in the usual manner in which an item from a window ischosen by means of the mouse, by bringing the mouse index to the desiredposition and actuating the appropriate mouse key. In this case, thewindow can be opened by acting mouse keys: if the mouse is provided withthree keys, the right-hand is often assigned to open special windows.The selection of the program will cause the selection of a number ofpairs of DD-counters, successively associated at the different stages ofthe selected program, as well as of the memory addresses that may berequired for registering operative signals.

In an embodiment of the apparatus according to the invention, all theunconventional components are located in the mouse. This means that themouse comprises all the elements schematically indicated in FIG. 1, aswell as the conventional elements not indicated therein, and thecomputer itself and the interface between mouse and computer can beconventional.

If the mouse is to contain all the unconventional elements, but is to beadapted particularly for carrying out a program, its inner circuit willbe as schematically shown in the block diagram of FIG. 6. In saiddiagram, for simplicity's sake, it is assumed that only two programs areto be carried out, and each program consists only of two stages, so thatonly eight DD-counters (δX1,δY1-δ'X1,δ'Y1, relative to the two stages ofthe first program and δX2,δY2-δ'X2,δ'Y2, relative to the two stages ofthe second program) are shown. The conventional mouse components are thesame as in FIG. 1, and they comprise displacement pulse generators(comprising wheels 10-10', radiation sources 12-12', and photodiodes14-14') and the conductor 16. The operation of the apparatus iscontrolled by a System Control Unit 30, which receives input from theMODE key 31 and a PROGRAM key 32, as well as from all operative key 33,as well as from a Command Memory 34, in which operative signals andinstructions are stored. Counter Indexes 35 and 35' control theDD-counters 36 and 36', of which, as has been said, only four pairs areindicated. All the components of FIG. 6 may be integrated in a mouse,which can then be operated without requiring any modifications in thecomputer or in the interface between mouse and computer.

According to other embodiments of the apparatus according to theinvention, an interface is provided between the mouse and the computer,which sits on the bus slots of the computer. This embodiment isschematically illustrated in the block diagram of FIG. 7. Numeral 40indicates the mouse. The mouse is, of course, a serial device and sendssignals in sequential manner, as indicated at 41. Numeral 42 indicates aUniversal Asynchronous Receiver/Transmitter (UART), which is connectedto the bus 43 of the reference computer. For simplicity of illustration,it will be assumed, in describing this and the following embodiments,that the computer is an IBM PC or a clone thereof. Clearly, however, theinvention could be applied to other computers, with adaptations, if anyare needed, that would be well within the ability of a skilled person.Numeral 44 generally illustrates the interface that is inserted,according to the invention, between the mouse and the computer. Thiscomprises a Microcontroller Unit (MCU) 45, a Memory 46, a SerialCommunication Interface (SCI) 47 and a Serial Peripheral Interface (SPI)48. The Memory contains the MCU routine, as well as a Memory Buffer.

Such an interface can be added, e.g., to the Motorola HCMOS 8-bitSingle-Chip Microcontroller (MC68HC11) based evaluation board by usingan IBM-PC standard Prototype Card Diagram (available in BIOS TechnicalManuals) and wiring the interface on its prototype extension, to beconnected to the IBM-PC bus. The resulting circuit provides:

512 bytes of internal EEPROM (block protect),

512 bytes of internal RAM (saved on standby or retained by low currentbackup source),

Timer System,

SCI,

SPI,

Real Time Interrupt Circuit

Low Power mode.

The Microcontroller Unit (MCU) of FIG. 7 carries out the operations thatare schematically described in the block diagram of FIG. 8. The serialinput from the mouse is indicated at 50. The device continuouslyoperates in idle condition, until at is found, as indicated at 51, thatan input datum has been received. If it has been received, it ischecked, as shown at 55, whether the system is in the R/M mode, thisfact having entered in an appropriate memory bank. If the answer ispositive, it is checked, as shown at 59, whether the datum is a commandto stop registering the data. If it is not such a command, the datum ismemorized, as shown at 52, and is concurrently transmitted to the UART53 and from it to the computer, as shown at 54, so that the same datum,while being memorized, is processed as in the normal mouse activity.Thus, if the datum is a displacement of the mouse, that displacement isentered in a DD-counter and concurrently the mouse is displaced, throughthe UART; if it is an operative command, it is memorized at theappropriate address and is concurrently executed, through the UART. Thenthe described cycle is repeated. If it is found, at 59, that the datumis a command to stop registering the data, it is carried out at 60, andthe described cycle is repeated.

If it is found at 55 that the system is not in the R/M mode, it ischecked at 56 whether the datum is not a command to shift to the R/Mmode. If it is such a command, it is carried out at 57, and thedescribed cycle is repeated. If at 56 it is found that the datum is nota command to shift to the R/M mode, it is verified at 58 that the systemis indeed in the A/P mode, and if so, the A/P process is activated, assymbolically indicated at 61 and as more fully illustrated hereinafterin the block diagram of FIG. 9. If at 58 it is found that no command hasbeen given to carry out any particular operation, the datum from themouse is transmitted to the UART to be processed, as in conventionaloperation, after which the cycle described begins anew.

If the A/P process is activated, the operations indicated in FIG. 9 takeplace. Each datum received at 51 in FIG. 8 is read. It is checked if thedatum is a signal that no more data will be received, and in this casethe loop starting at 50 in FIG. 8 is restarted, as shown at 95 in saidfigure. If the datum is not such a signal, it is transferred to the UART53 of FIG. 8, though by a connection not shown in said figure.

In another embodiment, the invention is applied to a system thatcomprises a mouse, which may be conventional, and a computer, in whichthe mouse driver has installed an IRS and an SL, with the correspondingIV's. While in order to carry out the process of the invention, said IRScould be canceled and a new one be substituted for it, in thisembodiment said ISR is maintained and an additional ISR, which will becalled "primary" or "new" ISR, is provided. The following operations arecarried out:

loading the new driver (primary ISR);

setting the IV for the said primary ISR, and

memorizing the address of the original or old ISR.

FIG. 10 shows in block diagram form the operations that are carried outby the primary ISR. It is seen that the data from the mouse areelaborated firstly by the primary or new ISR (NISR), which carries outthe steps characteristic of the invention, and transmits them to theoriginal ISR as deriving from the mouse, thus creating what has beencalled a phantom mouse, while not interfering with the functions whichthe original ISR would carry out in conventional operations. FIG. 10 isessentially identical to FIG. 8 and the same elements thereof areindicated by the same numerals, the only differences being that insteadof the UART there is on outlet 62-63 to the original ISR and the checkcarried out at 64 has the purpose of determining whether an input hasbeen received that is to be routed to the primary ISR.

The A/P process is the same as represented in FIG. 9.

A further embodiment of the invention is illustrated in block diagram inFIG. 11. This involves the use of at least two COM ports. Said COM portsmay be contained in a single interface or may be in separate interfacesconnected by an internal or external connection respectively. Suchinterfaces already exist and are available on the market. According tothe invention, however, a supplementary shortage 75 is introducedbetween the TxD pin of the first COM port, which will be knownhereinafter as the "primary port" and will be indicated by COMp, to theRxD pin of the second COM port, which will be called hereinafter the"driven" port and will be indicated by COMd. Further, the TxD of theCOM2 is connected directly to the mouse and the DSR and DTR controllines of the two COM ports are joined together. In the diagram of FIG.10, the mouse 70 is connected to the COMp indicated at 71 and this isconnected to the COMd indicated as 72. Both ports include a UART and areconnected to the computer bus indicated at 73. The COMp (71) performsall the operations that are described in FIGS. 8 and 9. The onlydifference is that, instead of the UART 53 of FIG. 8, the UART of COMd(72) is used, so that all the normal mouse operations, as well as theplay operations, are carried out through it.

FIG. 12 shows in block diagram form the operations that are carried outby the first COM port 71. It is seen that the data from the mouse areelaborated firstly by said COMp, which carries out the stepscharacteristic of the invention, and transmits them to the second COMport 72 as deriving from the mouse, thus creating what has been called aphantom mouse, while not interfering with the functions which said COMdwould carry out in conventional operations. FIG. 12 is essentiallyidentical to FIG. 8 and the same elements thereof are indicated by thesame numerals, the only differences being that instead of the UART thereis on outlet 77 to the UART of the second COM port 72. The check carriedout at 76 has the purpose of determining whether an input has beenreceived that is to be routed to the fist COM port 71, and that the A/Poperations, indicated at 78, are carried out by the second COM port 72.Said A/P operations are, once again, those represented in FIG. 9.

It is convenient, though not necessary, to use as mechanicallyconventional a mouse as possible in carrying out the invention. FIG. 13shows such a mouse. It has three keys L, M and R. The L key is the usualmouse SELECT key, by which it directs the computer to carry outoperations. The R key is generally allocated to other operations. The M,M-L and M-R keys (as stated hereinbefore, the term "key" includescombinations of keys} are available for activities according to theinvention. If the mouse is intended for performing more than twodifferent operations at any stage of its use, it may be necessary to addother keys, e.g. laterally placed ones, as indicated in broken lines at1 and 2. If the mouse is intended for performing programs, one of thekeys will be used for selecting the program and the mouse may beprovided with display means, e.g. a liquid crystal display, displayingthe number of the selected program, as shown in broken lines at 3.Alternatively, as shown in FIG. 14, the programs may be chosen byrotatable means, such as wheel 4, bearing the program numbers andassociated with an index such as arrow 5. Similar arrangements can beprovided in pointers that are not mouse devices.

It should also be noted that the sphere of a movable mouse may also beused as an additional key, particularly in the embodiments in whichcontrol means and a memory are provided in the mouse. If a contact isprovided within the mouse, which is closed when the ball is in itslowermost position and open when it is in its uppermost position, as itis when the mouse rests on the plane surface on which it moves, or viceversa, it suffices to lift the mouse to cause the desired contact to beclosed. The differential displacements relative to a chosen operationare registered in a separate memory bank, in the RUM mode, in the sameway as those relative to any other operation. Then the mouse is lifted,and the closure of the contact causes the control means to direct saidmemory bank to be reached in the A/P mode only through the closure ofthe same contact. Then it sauces to lift the mouse sphere when the mouseis in the A/P mode, to cause the differential displacements relative tothe chosen operation, as well as an operative command, to be transmittedto the computer, so that the chosen operation is carried out. Providingsuch a contact and programming the control means for such a functionwould involve no difficulty for a person skilled in the art. Aparticularly useful application would be to car out in this way the UNDOoperation

Additional power sources could be provided whenever required to keepelectronic components under tension when the computer is switched off,and these may include, as has been noted hereinbefore, batteries,optionally rechargeable ones. In this case, means could be provided,such as a pilot light or a particular sign in the display window, toindicate battery failure at any time or at the time that the computer isswitched on.

While embodiments of the invention have been described for purposes ofillustration, it will be apparent that the invention may be carried withmany modifications, variations and adaptations, without departing fromits spirit or exceeding the scope of the claims.

I claim:
 1. Method of controlling the operation of a computer from apointer with the computer having a pointer index (cursor) responsive tothe movement of the pointer, which comprises the followingsteps:A--choosing one of two modes of operation for said pointerinclusive of, the R/M (REGISTER/MEMORY) mode and the A/P (ACTIVE/PLAY)mode; B--when the pointer is in the R/M mode: (I) selecting at least oneoperation unit, and moving the pointer to bring the pointer index to areference position corresponding to the selected operation unit; and(ii) counting the pointer index coordinate displacements relative tosaid reference position and a first, selected base point and storing inmemory the counted displacements as differential coordinatedisplacements; and C--when the pointer is in the A/P mode: (I) selectingan operation unit from one previously selected in the R/M mode; (ii)determining the corresponding counter coordinates of the referenceposition by applying the differential coordinate displacements, with theappropriate sign, to the counter coordinates of a second base point; and(iii) carrying out the operation unit corresponding to said referencecounter coordinates.
 2. Method according to claim 1, wherein the firstand second base points coincide.
 3. Method according to claim 2, whereinthe base point is an arbitrarily chosen point.
 4. Method according toclaim 2, wherein the base point is a position which the pointer indexoccupies or has previously occupied and the coordinates of which havebeen memorized.
 5. Method according to claim 2, for performing amulti-phase operation or a program, which includes a plurality ofoperation units in which the displacements are counted by: a) bringingthe pointer index to any selected base point, b) displacing the pointerindex and counting displacements starting from said base point until thefirst reference position, relative to the first operation unit, has beenreached, c) registering said first counted displacements, d) displacingthe pointer index and continuing to count displacements from said firstreference position until the second reference position, relative to thesecond operation unit, has been reached; e) registering said secondcounted displacements; and so on, displacing the pointer index from onereference position to the next and counting the respectivedisplacements, until the last reference point, relative to the lastoperation unit, has been reached.
 6. Method according to claim 5,further comprising disregarding the displacement from the base point tothe first reference position, when in the R/M mode.
 7. Method accordingto claim 5, wherein commands may be given by the pointer between stagesand when the pointer is in the R/M mode, said pointer commands arecaused to be registered.
 8. Method according to claim 1, wherein thebase point is the actual position of the pointer index.
 9. Methodaccording to claim 8, which comprises counting the differentialdisplacements by bringing the pointer index firstly to a referenceposition, and stating to count displacements from said position;continuing to count the displacements as long as the computer is inoperation; and assuming the displacements counted from any givenreference position up to any moment as the differential displacementsrelative to said reference position and a base point that is theposition in which the pointer index finds itself at that particularmoment.
 10. Method according to claim 8, for performing a multi-phaseoperation or a program, including a plurality of operation units, whichcomprises arranging the operation units and the corresponding referencepoints in a succession, and assuming each reference point as the basepoint relative to the next reference position.
 11. Method according toclaim 1, which comprises counting the differential displacements fromthe first base point to the reference position.
 12. Method according toclaim 1, wherein at least the first base point is a fixed point. 13.Method according to claim 12, wherein the base point is the pointerorigin.
 14. Method according to claim 1, further comprising the stepsof:D--providing differential coordinate, displacement counters forstoring pointer index differential displacements having an output toread and/or retrieve said displacements therefrom; E--selecting one ofthe two modes in step A; F--when the pointer is in the R/M mode: (I)selecting at least one operation unit; (ii) moving the pointer indexfrom a selected base point to a reference position corresponding to saidoperation unit; and (iii) counting the pointer index elementarycoordinate displacements occurring during said movement of the pointerindex and storing in memory the connected displacements as differentialelementary coordinate displacements; and G--when the pointer is in theA/P mode: (I) selecting an operation unit from one previously selectedin the R/M mode; (ii) bringing the pointer index to said base point;(iii) applying to said pointer index said elementary coordinatedisplacements to cause it to move through a succession of elementaryvector displacements, from said base point to said reference position;and (iii) carrying out the operation unit corresponding to saidreference position.
 15. Method according to claim 14, wherein in the R/Mmode the operation units are selected and the pointer indexdisplacements relative to their reference positions are registered inthe differential displacement counters by actuating operative keys,without interfering with the normal processing of pointer signals,including the updating of the actual pointer index coordinates; and inthe A/P mode operation units are selected, the differentialdisplacements registered in said counters are read or retrieved andapplied to the coordinates of the base point to determine referencecounter displacements, and the operations corresponding to these latterare performed, by actuating operative keys which produce a signal thatembodies the instruction to carry out the aforesaid operation units,while disregarding the actual pointer index coordinates.
 16. Methodaccording to claim 1 further comprising:D--choosing one of two modes ofoperation from step A; E--when the pointer is in the R/M mode: (I)selecting an operation unit from among a plurality of such units bybringing the pointer index to a reference position corresponding to saidoperation unit; and (ii) causing the pointer index displacementsrelative to said reference position and a first, selected base point tobe counted and registered or memorized as differential displacements;F--when the pointer is in the A/P mode: (I) determining thecorresponding counter coordinates of the reference position relative tosaid selected operation unit by applying the differential displacements,with the appropriate sign, to the counter coordinates of a second basepoint; and (ii) carrying out the operation unit corresponding to saidreference counter coordinates; and G--repeating the aforesaid steps foranother selected operation unit.
 17. Method according to claim 1,further comprising the steps ofD--providing differential displacementcounters for storing successions of pointer index elementarydisplacements with said counters having an output to read and/orretrieve said successions therefrom; E--selecting one of two modes ofoperation from step A; F--when the pointer is in the R/M mode: (I)selecting at least one operation unit by bringing the pointer index to areference position corresponding to said operation unit; and (ii)causing the pointer index to undergo the succession of elementarydisplacements to move it from the selected reference position to aselected base point and storing each of said successions of elementarydisplacements and; G--when the pointer is in the A/P mode: (I) selectingan operation unit from one previously selected in the R/M mode; (ii)causing the pointer index to move from the corresponding base point tothe reference position corresponding to the selected operation unit; and(iii) carrying out the operation unit corresponding to said referenceposition.
 18. Method according to claim 1, further comprisingregistering any desired pointer event when in the R/M mode and producingany action associated with it when in the A/P mode.
 19. Method accordingto claim 1, wherein differential displacement counters are providedeither in the pointer itself or in an interface or in the computer, andthe differential displacements are registered in the said counters. 20.Method according to claim 1, wherein the R/M or the A/P mode ispreferably selected by actuating a MODE key.
 21. Method according toclaim 1, wherein the pointer is a mouse device.
 22. Pointer controlledcomputer apparatus, which comprises:I--a pointer device, comprisingmeans for producing and transmitting to a computer signals correspondingto pointer index displacements; II--a computer having means forreceiving and means for processing signals from said pointer device,said processing means comprising means for causing said pointer indexdisplacements to be performed; III--means for identifying signalscorresponding to differential displacements; IV--counter means forregistering differential displacements; V--means for reading and/orretrieving said differential displacements and determining from themreference counter coordinates; and VI--means for performing theoperations corresponding to said reference counter coordinates. 23.Apparatus according to claim 22, comprising keys each associated withone operation unit.
 24. Apparatus according to claim 22, comprising keyseach associated with one multi-phase operation.
 25. Apparatus accordingto claim 22, comprising keys each associated with one multi-stageprogram.
 26. Apparatus according to claim 22, comprising keys thatproduce signals that embody the instructions to register pointercommands in the appropriate succession with the displacements. 27.Apparatus according to claim 22, wherein at least one of means III, IVand V is included in the pointer.
 28. Apparatus according to claim 22further comprising an Asynchronous Interface with said means III, IV andV included therein.
 29. Apparatus according to claim 27 wherein theAsynchronous Interface is inserted into the computer.
 30. Apparatusaccording to claim 28, wherein the Asynchronous Interface is embodied ina card.
 31. Apparatus according to claim 28, wherein the AsynchronousInterface is embodied in two cards in series.
 32. Method according toclaim 22 wherein the pointer device is a mouse device.